/*
 * MOGAQCA.h
 *
 *  Created on: Oct 14, 2014
 *      Author: lfelipe
 */

#ifndef MOGAQCA_H_
#define MOGAQCA_H_

#include "../Entity/Instance.h"
#include "../Entity/Population.h"
#include "../Model/EvaluationFunction.h"

class MOGAQCA
{


public:

    class PARAMETERS {
    public:
        int  iterations;
        int population_size;
        int population_crossover_size;
        int population_mutation_size;
        float crossover_tax;
        float  mutation_tax;
        Instance instance_default;
        EvaluationFunction  *evalutaion_function = NULL;
        int random_seed;

        static PARAMETERS build_parameter(int argc,char *argv[]);



    };

private:
    Population current_population_;
    PARAMETERS parameters_;


public:
    MOGAQCA();
    virtual ~MOGAQCA();

    void execute(PARAMETERS parameters);

};

#endif /* MOGAQCA_H_ */
